package com.yayun.merchant.service;

import java.util.List;
import com.yayun.merchant.domain.OmsOrder;

public interface IOmsOrderService {
    /**
     * 查询订单列表
     */
    List<OmsOrder> selectOrderList(OmsOrder order);

    /**
     * 查询订单详细信息
     */
    OmsOrder selectOrderById(Long id);

    /**
     * 创建订单
     */
    OmsOrder createOrder(OmsOrder order);

    /**
     * 修改订单
     */
    int updateOrder(OmsOrder order);

    /**
     * 更新订单状态
     */
    int updateOrderStatus(Long orderId, Integer status);

    /**
     * 删除订单
     */
    int deleteOrderById(Long id);

    /**
     * 批量删除订单
     */
    int deleteOrderByIds(Long[] ids);

    /**
     * 订单支付
     */
    int payOrder(Long orderId, Integer payType);

    /**
     * 订单发货
     */
    int deliveryOrder(Long orderId, String deliveryCompany, String deliverySn);

    /**
     * 确认收货
     */
    int confirmReceiveOrder(Long orderId);

    /**
     * 取消订单
     */
    int cancelOrder(Long orderId, String note);

    /**
     * 通过订单编号取消订单
     * @param orderSn 订单编号
     * @param note 取消原因
     * @return 结果
     */
    public int cancelOrderByOrderSn(String orderSn, String note);

    /**
     * 通过订单编号支付订单
     * @param orderSn 订单编号
     * @param payType 支付方式
     * @return 结果
     */
    public int payOrderByOrderSn(String orderSn, Integer payType);

    /**
     * 通过订单编号查询订单
     * @param orderSn 订单编号
     * @return 订单信息
     */
    public OmsOrder selectOrderByOrderSn(String orderSn);

    /**
     * 更新订单备注
     * 
     * @param order 订单信息
     * @return 结果
     */
    public int updateOrderNote(OmsOrder order);
}